package cn.kt.test;

/**
 * Created by tao.
 * Date: 2021/9/3 14:26
 * 描述:  Lambda 表达式：变量作用域
 */
public class Demo3 {

    private final static String salutation = "Hello! ";


    public static void main(String args[]) {
        //不能在 lambda 内部修改定义在域外的局部变量，否则会编译错误。
        GreetingService greetService1 = message ->
                System.out.println(salutation + message);
        greetService1.sayMessage("Runoob");
        //可以直接在 lambda 表达式中访问外层的局部变量：
        final int num = 1;
        Converter<Integer, String> s = (param) -> System.out.println(String.valueOf(param + num));
        s.convert(2);  // 输出结果为 3
    }

    interface GreetingService {
        void sayMessage(String message);
    }

    public interface Converter<T1, T2> {
        void convert(int i);
    }
}
